package com.example.administrator.ouyangji;

import android.content.Intent;
import android.content.SharedPreferences;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.administrator.ouyangji.utils.MD5Utils;


public class RegisterActivity extends AppCompatActivity {

    private TextView tv_back;
    private EditText et_user_name,et_psw,et_psw_again;
    private Button btn_register;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        init();
        tv_back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //返回到上一级界面，只需要把自己删除，其他工作由系统完成（栈顶的位置自动更改，屏幕显示新的栈顶界面）
                RegisterActivity.this.finish();
            }
        });

        btn_register.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //检查三个文本框是否为空
                //检查用户名是否已经已经注册
                //检查两个密码是否一致
                //提交保存用户注册信息
                String userName,psw,pswAgain;
                userName=et_user_name.getText().toString();
                psw=et_psw.getText().toString();
                pswAgain=et_psw_again.getText().toString();
                if(userName.equals("")){
                    //用户名为空
                    Toast.makeText(RegisterActivity.this,"你输入的用户名为空",Toast.LENGTH_LONG).show();
                    return;
                }
                //检查用户名是否已经已经注册,先读取SP文件中的用户名
                SharedPreferences sharedPreferences=getSharedPreferences("loginInfo",MODE_PRIVATE);
                String spPsw=sharedPreferences.getString(userName,"");
                //三种情况：不存在用户名，返回空对象;存在用户名，但是没有密码，返回"";存在用户名存在密码，返回密码
                //我们认为只有用户名和密码都存在才是用户名已经注册，即使数据库已经有用户名没有密码，则新注册覆盖
                if(spPsw!=null&&spPsw.length()!=0){//p63:102
                    Toast.makeText(RegisterActivity.this,"你输入的用户名已经注册",Toast.LENGTH_LONG).show();
                    return;
                }
                if(psw.equals("")){
                    //密码为空
                    Toast.makeText(RegisterActivity.this,"你输入的密码为空",Toast.LENGTH_LONG).show();
                    return;
                }
                if(pswAgain.equals("")){
                    //再次输入密码名为空
                    Toast.makeText(RegisterActivity.this,"你再次输入的密码为空",Toast.LENGTH_LONG).show();
                    return;
                }
                if(!psw.equals(pswAgain)){
                    //两次密码不相同
                    Toast.makeText(RegisterActivity.this,"你两次输入的密码不相同",Toast.LENGTH_LONG).show();
                    return;
                }
                //注册成功
                //提示、保存用户注册信息、跳转
                Toast.makeText(RegisterActivity.this,"注册成功",Toast.LENGTH_LONG).show();
                //sp文件保存：1、获取sp对象，2、获取编辑器对象。3、将保存内容写入到编辑器对象中，4、将编辑器对象的内容提交到文件
                SharedPreferences.Editor editor=sharedPreferences.edit();
                editor.putString(userName, MD5Utils.md5(psw));//保存sp文件中，密码要保存成密文
                editor.commit();
                //回跳到登录界面p63:80
                Intent data=new Intent();
                data.putExtra("userName",userName);
                data.putExtra("psw",psw);
                setResult(999,data);//回跳回来
                //回跳到对方（登录界面），对方如何接收这个携带的数据
                RegisterActivity.this.finish();
            }
        });
    }

    private void init(){
        tv_back=findViewById(R.id.tv_back);
        et_user_name=findViewById(R.id.et_user_name);
        et_psw=findViewById(R.id.et_psw);
        et_psw_again=findViewById(R.id.et_psw_again);
        btn_register=findViewById(R.id.btn_register);
    }



}
